package com.atguigu.spzx.manager.service.system;

import com.atguigu.spzx.model.dto.system.LoginDto;
import com.atguigu.spzx.model.dto.system.SysUserDto;
import com.atguigu.spzx.model.entity.system.SysUser;
import com.atguigu.spzx.model.vo.system.LoginVo;
import com.atguigu.spzx.model.vo.system.ValidateCodeVo;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface SysUserService {

    /**
     * 登录校验
     * @param loginDto
     * @return
     */
    LoginVo login(LoginDto loginDto);

    /**
     * 根据token查询该用户信息
     * @param token
     * @return
     */
    SysUser getUserInfo(String token);

    /**
     * 退出登录
     * @param token
     * @return
     */
    void logout(String token);

    /**
     * 图片验证码
     * @return
     */
    ValidateCodeVo generateValidateCode();

    /**
     * 分页查找用户列表
     * @param pageNum
     * @param pageSize
     * @param sysUserDto
     * @return
     */
    PageInfo<SysUser> findByPage(Integer pageNum, Integer pageSize, SysUserDto sysUserDto);


    /**
     * 添加用戶信息
     * @param sysUser
     */
    void insertSysUser(SysUser sysUser);

    /**
     * 修改当前行用户信息
     * @param sysUser
     */
    void updateSysUser(SysUser sysUser);

    /**
     * 根据id删除用户
     * @param id
     */
    void deleteSysUserById(Long id);

}
